package com.xdog.web3.service;

import com.alibaba.fastjson.JSONObject;
import com.xdog.web3.domain.balance.SpecificTokenBalanceRequest;
import com.xdog.web3.domain.balance.TokenBalanceQuery;
import com.xdog.web3.domain.balance.TotalValueQuery;

/**
 * 余额服务接口
 */
public interface IBalanceService {

    /**
     * 获取地址下全量代币和 Defi 资产总余额
     * @param query 总估值查询参数
     * @return 总估值响应数据
     */
    JSONObject getTotalValueByAddress(TotalValueQuery query);

    /**
     * 查询地址持有的多个链或指定链的代币余额列表
     * @param query 代币余额查询参数
     * @return 代币余额响应数据
     */
    JSONObject getAllTokenBalancesByAddress(TokenBalanceQuery query);

    /**
     * 查询地址下指定代币的余额
     * @param request 特定代币余额请求参数
     * @return 特定代币余额响应数据
     */
    JSONObject getTokenBalancesByAddress(SpecificTokenBalanceRequest request);
}
